#!/usr/bin/env sh
# NÃO ULTRAPASSE DE '|
#============HEADER=================================================|
#AUTOR
#  Jefferson Rocha <lrcjefferson@gmail.com>
#
#PROGRAMA
#  Backup Full
#
#DESCRICAO
#
#
#CHANGELOG
#===================================================================|
[ "$UID" -ne "0" ] && { printf '%s\n' "Necessita de root."; exit 1 ;} # Root?

#=========VARIAVEIS====================|
dia=$(date +%d-%m-%y)
# USUARIO mexa aqui.  
UUID="B6F3-BD81"                            # UUID do dispositivo (blkid)!
ORIGEM_BACKUP="/home/slackjeff/Desktop"     # Diretorio COMPLETO do BACKUP
DIRETORIO="bkp"                             # Se ter um diretorio especifico, especifique.
DESTINO_BACKUP="/mnt/backup_full"           # Informe o ponto de montagem.

# NÃO MEXER
DISPOSITIVO=$(blkid -U "$UUID")             # Convertendo UUID para Nome dispositivo.
log="/var/log/backup_full.log"
#======================================|


#=========TESTES=======================|
# Verificando se dispositivo está montado!
umount -vf "$DISPOSITIVO" 1>/dev/null 2>/dev/null

# Não existe? CRIE!
if [ ! -d "$DESTINO_BACKUP" ]; then
    if ! mkdir -v "$DESTINO_BACKUP"; then
        exit 1
    fi
fi

# MONTANDO DISPOSITIVO!
if ! mount "$DISPOSITIVO" "$DESTINO_BACKUP" 2>/dev/null; then
    printf '%s\n' "FALHOU NA MONTAGEM!"
    exit 1
fi
#======================================|

#=========FUNCOES======================|
_msg(){
cat >> "$log" <<END
==================${dia}=====================
 HORA INICIO:  $hora_inicio
 HORA TERMINO: $hora_fim
 DIR BACKUP:   ${ORIGEM_BACKUP}
 DISPOSITIVO:  ${DISPOSITIVO}
 MONTAGEM:     ${DESTINO_BACKUP}
===============================================

END
}
#======================================|


#========INICIO
SAIDA_FINAL="backup-${dia}.tar.gz" # Nome do pacote final.
hora_inicio=$(date "+%H:%M:%S")    # Hora de inicio do backup


if tar cvzC "$ORIGEM_BACKUP" -f "$SAIDA_FINAL" "bkp" --owner=0 --group=0 2>/dev/null; then
   mv "$SAIDA_FINAL" "$DESTINO_BACKUP"  # Movendo pacote para destino.
   hora_fim=$(date "+%H:%M:%S")         # Horario de Fim do backup.
   _msg                                 # Chamando função.
   umount -vf "$DISPOSITIVO" 1>/dev/null 2>/dev/null
else
   exit 1
fi


